草庐IT

c++ - Swig -includeall 除了...

全部标签

c++ - Rabin-Karp 算法的最佳哈希函数是什么?

我正在为Rabin-Karp算法寻找高效的哈希函数。这是我的实际代码(C编程语言)。staticboolf2(charconst*consts1,size_tconstn1,charconst*consts2,size_tconstn2){uintmax_thsub=hash(s2,n2);uintmax_ths=hash(s1,n1);size_tnmax=n2-n1;for(size_ti=0;i我考虑了一些Rabin-KarpC实现,但所有代码之间存在差异。所以我的问题是:Rabin-Karp哈希函数应该具备哪些特征? 最佳答案

c++ - C/C++大数计算

我正在尝试在C程序中计算以下数字:result=(3*pow(2,500000000)-2)%10000000002的幂太大而无法正确处理=>我的印象是我可以使用模数将计算分成许多步骤以减小结果大小。有人有这样做的策略吗?还有其他想法吗?提前致谢手册 最佳答案 最简单的方法是通过重复平方减去每一步中的模数来取幂。unsignedlonglongmod_pow(unsignedlonglongbase,unsignedlonglongexponent,unsignedlonglongmodulus){if(exponent==0)re

c++ - C 和 C++ 中的 Const、static、extern 及其组合

很难说出这里要问什么。这个问题模棱两可、含糊不清、不完整、过于宽泛或夸夸其谈,无法以目前的形式得到合理的回答。如需帮助澄清此问题以便重新打开,visitthehelpcenter.关闭10年前。1)static、extern和const有何不同,它们在C和C++中的使用有何不同?(默认联动等差异)2)C中使用的头文件中允许以下声明和定义,然后包含在多个文件中。staticinttestvar=233;externintone;externintshow();intabc;constintxyz;//constintxyz=123;produceserrorconstdefinition

c++ - 链接错误与编译错误

为什么结构的双重声明会导致编译错误,而函数的双重定义会导致链接错误? 最佳答案 因为函数定义在链接时包含在可执行文件中,但声明或语法检查都在编译时完成当您调用任何函数并且编译器无法找到函数声明时,还要考虑一件事,然后它会生成警告作为implicitdeclarationoffunc()。为了删除此警告消息,我们提供了func的前向声明,intfunc();并且它在编译时没有任何警告消息。你认为为什么会这样?发生这种情况是因为编译器没有找到func()符号。根据语言语法使代码没有错误完全取决于编译器。但最终可执行文件的构建是在链接时完

c++ - 重命名(别名)数组元素 C

不确定什么是“良好做法”或被认为更“正确”。我有一个数组,我想通过arrayname[]以外的名称访问单个元素。我可以使用#defines或指针,可能还有其他方式。例子:#definevalue1myarray[1]intmyarray[SIZE];value1=5;或intmyarray[SIZE];int*ptr;ptr=&myarray[1];*ptr=5;在我看来,#define路由更简单并且使用的内存更少,但可能会带来一些我不知道的问题。任何见解都会很棒,我希望尽可能使我的代码遵循普遍接受的标准。*编辑:也许有更好的方法。我的最终目标是获得一个将被发送到外围端口的数组。然而,

c++ - LibAv/FFMpeg 的线程安全性?

LibAV/FFMpeg线程安全吗?例如。我可以在一个线程中使用AVFormatContext*从一个文件中读取文件,然后通过简单地添加互斥锁在另一个线程中解码读取的数据包,或者库的线程安全性是一种“不知道不关心”类型的交易吗?我知道libav对编码器线程有基本支持,但我正在尝试更多的黑盒类型方法,我将它分成多个线程(源->解码器->过滤器->编码器->接收器)并试图理解复杂性任何对ffmpeg和线程有任何经验并愿意提供与此相关的任何其他信息的人也将不胜感激。 最佳答案 您可以注册自己的锁管理器。ffmpeg库将控制线程安全。例子:

c++ - 在 C/C++ 中传递多维数组

为什么在C/C++中,接收MDarr的函数参数需要具有所有子数组/维度的大小?here(PDF):它说MDarrs的唯一区别是“编译器会记住每个虚构的维度”,但是当我违反这些维度时,编译器什么都不做,例如:chararr[3][5];arr[0][5]=10;那么,记住这些尺寸有什么意义呢? 最佳答案 对数组的索引访问必须根据索引值和声明的次级维度以行优先顺序计算内存偏移量。稍后会详细介绍。但首先,您的问题与这个简单的观察密切相关:voidfoo(chara[]){a[5]='a';}//calleroffoo()fromsomew

c++ - 如何判断 double float 是否可以安全地存储为单精度 float ?

这个问题在这里已经有了答案:关闭9年前。PossibleDuplicate:Realnumbers-howtodeterminewhetherfloatordoubleisrequired?我正在尝试检查从double到float的转换是否会导致精度损失。显然,我可以进行转换并将float转换回double并将其与原始值进行比较。我很好奇是否有更直接的方法。

c++ - 大型 const 数组的初始化?

是否可以在不键入其中的每个元素的情况下初始化大型const数组,例如:尝试创建一个数组:constdoubleA[1000]={1.0/1,1.0/2,1.0/3,...,1.0/1000};用循环很容易做到。 最佳答案 如果它真的必须是const并且您有1000个不同的值,请编写一些child应用程序/脚本将其作为头文件吐出并防止您输入!如果需要的话,这为您提供了一种稍后修改整个数组初始化的简单方法。 关于c++-大型const数组的初始化?,我们在StackOverflow上找到一个

c++ - 在 C/C++ 中将 1 位 bmp 文件转换为数组

关闭。这个问题需要更多focused.它目前不接受答案。想改进这个问题吗?更新问题,使其只关注一个问题editingthispost.关闭2年前。Improvethisquestion我希望将可变高度/宽度的1位bmp文件转换为值为0或1的简单二维数组。我对代码和大多数库中的图像编辑没有任何经验我发现涉及比我需要的更高的位深度。任何有关这方面的帮助都会很棒。